<?php
namespace Admin\Model;
use Think\Model;
class BlogModel extends Model{
    //前置钩子函数实现logo图片的上传
    function _before_insert(&$data, $options){
        $path=$this->upload(0);
        $data['blog_big_logo']=$path['big_logo'];
        $data['blog_small_logo']=$path['small_logo'];
    }
    //前置钩子函数实现logo图片的修改
    function _before_update(&$data, $options)
    {
        $path=$this->upload($options['where']['blog_id']);
        $data['blog_big_logo']=$path['big_logo'];
        $data['blog_small_logo']=$path['small_logo'];
    }

    function upload($blog_id=0){
        if($_FILES['logo']['error']==0) {
            /*
             * 如果$blog_id=0,表示logo图片的添加
             * 如果$blog_id!=0，表示logo图片的修改
             * */
            if($blog_id!=0){
                $blog_info = M('Blog')->where(array('blog_id'=>$blog_id))->find();
                if(file_exists($blog_info['blog_big_logo'])){
                    unlink($blog_info['blog_big_logo']);
                }
                if(file_exists($blog_info['blog_small_logo'])){
                    unlink($blog_info['blog_small_logo']);
                }
            }
            //设置上传文件的保存路径
            $cfg = array(
                'rootPath' => './Public/Uploads/logo/', //保存根路径
            );
            $upload = new \Think\Upload($cfg);
            $z = $upload->uploadOne($_FILES['logo']);
            //将上传好的图片存储给数据库
            $path['big_logo']= $upload->rootPath . $z['savepath'] . $z['savename'];
            //制作缩略图
            //实例化Iamge类
            $img = new \Think\Image();
            //打开要修改的图片(找到图片的路径)
            $img->open($path['big_logo']);
            //制作缩略图
            $img->thumb(175,175,6);
            //将制作好的缩略图保存到数据库
            $path['small_logo'] = $upload->rootPath.$z['savepath'].'small_'.$z['savename'];
            //保存缩略图
            $img->save($path['small_logo']);
            return $path;
        }
    }
}